Houdini数学 : 外積の可視化
はじめに
Houdniを利用して外積計算を可視化したものを載せていきたいと思います。
外積の性質
外積の可視化を載せる前に、外積が持つ性質を軽く紹介したいと思います。
ベクトル $ \vec{A} と ベクトル$ \vec{B} の外積を $ \vec{A} \times \vec{B} と表記します。
外積$ \vec{A} \times \vec{B} は $ \vec{A} や $ \vec {B} と 必ず垂直になります。
例1 : Z方向ベクトル、X方向ベクトルの外積
https://gyazo.com/7d01db3c1cbf2fd357692a39e604e3b6
code:VEX(c)
v@V = cross({0, 0, 1}, {1, 0, 0});
外積結果は外積計算の元となった2つのベクトルと垂直になっています。
外積結果はY方向のベクトルです。( 外積の値は (0, 1, 0) です)
例2 : X方向ベクトル、Y方向ベクトルの外積
https://gyazo.com/e2da410206cee690e01e62e88b5eba67
code:VEX(c)
v@V = cross({1, 0, 0}, {0, 1, 0});
外積結果は外積計算の元となった2つのベクトルと垂直になっています。
外積結果はZ方向のベクトルです。( 外積の値は (0, 0, 1) です)
例2 : X方向ベクトル、XY方向ベクトルの外積
https://gyazo.com/d37d3025f76df0d82db5399ee0b533b5
code:VEX(c)
v@V = cross({1, 0, 0}, {1, 1, 0});
外積結果はZ方向のベクトルです。( 外積の値は (0, 0, 1) です)
豆知識) (1,0,0)と(1,1,0)の外積は(0,0,1)になります。 (1,0,0)と(0,1,0)の外積も同じく(0,0,1)になります。
例3 : 円の頂点座標、Y方向ベクトルの外積
https://gyazo.com/38852029c5d9687e5b8be9b367073e36
code:VEX(c)
v@V = cross(v@P, {0, 1, 0});
外積結果は時計回り・同じ長さになっています。
例4 : 円の頂点座標、X方向ベクトルの外積
https://gyazo.com/c8c9af44caf0ceffa9a2a1cc42bb39f0
code:VEX(c)
v@V = cross(v@P, {1, 0, 0});
ベクトルのなす角が90°(垂直)に近づくほど、外積結果のベクトル長が大きくなります。
ベクトルのなす角が0°・180°(平行)に近づくほど、外積結果のベクトル長は小さくなります。
■ 外積の順番を入れ替える
https://gyazo.com/6437fd526ea5e84e57821f6a2b8d3002
code:VEX(c)
v@V = cross({1, 0, 0}, v@P);
外積の計算を逆にすると、外積の符号が反転します(向きが逆になります)
例5 : 円の頂点座標、Z方向ベクトルの外積
https://gyazo.com/53d2d8561d4f40e97f39c90d4de810f9
code:VEX(c)
v@V = cross(v@P, {0, 0, 1});
ベクトルのなす角が0°・180°(平行)に近づくほど、外積結果のベクトル長は小さくなります。
■ ベクトルの向きを反転する
https://gyazo.com/2c1380cc530232d1dba8c09974d86301
code:VEX(c)
v@V = cross(v@P, {0, 0, -1});
ベクトルの符号を反転する(向きを反対にする)と、結果の符号が反転します(ベクトルが逆になります)。
例6 : 立方体の頂点座標、Y方向ベクトルの外積
https://gyazo.com/3954ef8432005c71ed88f5de00375a01
code:VEX(c)
v@V = cross(@P, {0, 1, 0});
外積結果は時計回り・同じ長さになっています。
例7: グリッド上の頂点座標、Y方向ベクトルの外積
https://gyazo.com/ed8bcf76610f608ea6d3ef058e2da430
code:VEX(c)
v@V = cross(@P, {0, 1, 0});
中心から離れているところほど、外積結果のベクトル長が大きくなっています。
外積結果のベクトルは時計回りになっています。
参考リンク
ベクトルの外積 (定義・計算例・性質/公式)